perm filename DATA.DIS[1,RWF]3 blob sn#514408 filedate 1980-05-30 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00011 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00003 00002			ON THE USE OF THE DATADISC TERMINAL 
C00017 00003	FILE DIRECTORY INFORMATION.  To see the names of all your files, type  DIR
C00022 00004	EDITING A FILE.
C00026 00005
C00030 00006	PRINTING A FILE.
C00033 00007
C00039 00008	CURSOR OPERATIONS.
C00043 00009	LINE OPERATIONS.
C00047 00010	TEXT-MOVING OPERATIONS.
C00051 00011	APPENDIX B.  WHAT TO DO IN CASE OF TROUBLE.
C00059 ENDMK
C⊗;
		ON THE USE OF THE DATADISC TERMINAL 

This  is  file DATA.DIS[1,RWF]  at the Stanford AI Lab  (SU-AI), last written
April 9, 1980.  Bob Floyd  (aka  RWF)  wrote it,  maintains it,  and welcomes
suggestions.


STARTING UP.
 
The DataDisc terminal consists of a keyboard and a TV-like screen.  Turn the
ON-OFF switch on  and wait for the screen  to warm up.  Adjust  the contrast
knob until letters appear on the screen.  Then adjust the brightness knob so
that  the bright background  just disappears.  The contrast knob can then be
adjusted for visual comfort.

THE KEYBOARD.
 
The keyboard  contains three types of keys.  Some keys send their character to
the computer.  Others,  while held down,  change the meaning  of the character
keys.  Most of the keys  belong  to  the first  category  of  characters.  The 
following keys  modify the meaning of the characters typed while they are held
down.  
(1)  SHIFT.   Hold this key down like the SHIFT key on a typewriter for upper
     case letters.
(2)  SHIFT LOCK.   Press this key to go from typing upper case letters to 
     lower case or vice versa.  It affects only letters.
(3)  TOP.  Hold this key down to type the top character on keys which show two
     characters.
(4)  CONTROL and META.   These keys, which may be held down while a character
     is typed, modify the meaning of that character in various ways, some of
     which will be described in detail later.  To say briefly, "Hold down 
     CONTROL while typing  D ", this document uses CONTROL<D>.

Some keys are marked with a word or a syllable, such as RETURN.  Be sure to
use the RETURN key when called for, and not to type the six letters
separately. In the remainder of this document, they are enclosed in brackets []
for clarity.

Typing CONTROL<BREAK> will stop the 
terminal display if it is moving too fast for you to read.
To resume display, type CONTROL<CLEAR>.
The [CALL] key may be used to interrupt 
anything that is going on that you want stopped, such as the display of a 
long text.

USING THE AI LAB COMPUTER.
 
If you do not already have them, get a project name, progammer initials, and
password from Les Earnest or Denny Brown.  After your account has been
activated, you may use the AI computer.  Turn on the power as described above.
Press the [CALL] key.  The system
monitor will begin a new line with a period, which shows that it awaits your 
command.  (If it fails to do this, the computer is probably not in service.)  
You must first identify yourself to the system by "logging in".
If XXX is your programmer initials,type L XXX [RETURN].
If you also need to specify a project name YYY, type L YYY/XXX [RETURN] instead.
When the system prints  PASSWORD= , type your password and [RETURN].
It will not appear on your terminal.  The system will now print a set of 
messages to all users of the AI system, not all intelligible.  If you log in 
using a comma to separate your project from your initials, all current 
messages, including those you have seen before, will be printed.  For more 
information on logging in, type  HELP LOGIN  followed by  [RETURN].  If you 
mistype your identification and the system types a TRY AGAIN message ending 
with the  # sign, retype the YYY/XXX and [RETURN] part.

DISCONNECTING FROM THE AI LAB COMPUTER.
 
When you get through using the computer, follow this disconnecting procedure.
When the monitor prints
the period (.), type  K [RETURN]  to tell the system that you want to quit.
(To get back to the monitor if you are editing, type  CONTROL <E> .)  The  K
stands for  KILL JOB .  The system will then print accounting information
and KJOB.  

CORRECTING INPUT.
 
When typing at the terminal, you may make corrections at any time until hitting
the [RETURN] key.  Corrections are made where the cursor is.  To move the cursor
right or left, type CONTROL<SPACE> or CONTROL<BS> respectively.  To change the
character at the cursor, type the new character.  To delete the character
at the cursor, type  CONTROL<D> .  To insert characters at the cursor, type
CONTROL<I>  followed by the desired characters, using  CONTROL<SPACE> to stop
inserting. To retype a garbled line, type [ALT].
 When the line is correct, type [RETURN].

FILE DIRECTORY INFORMATION.  To see the names of all your files, type  DIR
[RETURN] . To  see the names  of another user's  files, type  DIR[YYY,XXX]
[RETURN] where YYY,XXX is the project name and programmer initials of that
other user.


FILE NAMES.

Your own file names are of the form NNNNNN.EEE, where NNNNNN is a name  of
up to six letters, and EEE is a code for the kind of file.  You might  let
EEE be TXT for English  text, DAT for numerical  data, etc.  The name  for
someone else's file is NNNNNN.EEE[YYY.XXX],  where YYY.XXX is his  project
name and programmer initials.


COPYING A FILE.

to make a copy of a file, use the COPY command in the form COPY newfile  ←
oldfile [RETURN] , to create a file named newfile , which is a copy of the
file named oldfile .

READING A FILE.

Type ET filename [RETURN]  , where filename  is the name  of the file  you
want to read (see above for file  names).  Files are broken up into  parts
called pages.  To see  the next screenful of  information in a page,  type
[FORM].  To back up within a page,  type CONTROL<VT> . To get to the  next
page, type CONTROL<P> . To go forward  n pages, type CONTROL<+nP> , To  go
backward n pages, type CONTROL<-nP> . To go to page n , type CONTROL<nP> .
When you are done reading, type CONTROL<E> to return to the monitor.   You
can use these operations, and those in DELETING FROM A FILE, to read  your
mail, which is on  a file named \M  . If you don't  want to change a  file
while reading it, use ER rather than ET.

CREATING A NEW FILE.

Type CET filename [RETURN] .  Then type the lines of  text you want to  go
into the file.  To start a new  file page (for example, just before a  new
subject heading),  type  CONTROL<X>  MARK  [RETURN] .  When  the  file  is
complete, type CONTROL<E> .

EDITING A FILE.

While reading or creating a file (see above), you may make changes to
it by addition, deletion, or replacement.  The following sections tell
how.  By the current line, page, or file, we mean the one the cursor is in.

In addition to the operations listed under READING A FILE, you will need to
know these:
	To move the cursor down or up  n  lines, type
		CONTROL<n> [RETURN]  or 
		CONTROL<n BS> respectively.
	If  n  is  1, just type  [RETURN] or [BS] respectively.
	To see more of the text at the top or bottom of the page, type
		CONTROL<T>  or CONTROL<B>  respectively.
	To move the cursor to line number  n  of the current page, type
		CONTROL<nL> .
Other operations are in APPENDIX A.
 

ADDING TO A FILE.

To add material at the end of any page of a file, read that file with  the
cursor at the  line of asterisks  which ends  that page.  If  you are  not
already reading the file,  type ET filename/nE [RETURN]  , where n is  the
page number.  Then type in the new lines to be added to the file.

To insert new  lines in  a file,  read that file  with the  cursor at  the
desired place of insertion.  Type CONTROL+META<RETURN> . Then type in  the
new lines.  When finished, type CONTROL<RETURN>.

To insert new material in a line of a file, read the file with the  cursor
at that line.  Then use the methods described in CORRECTING INPUT, above.


DELETING FROM A FILE.

To delete a page of a file, read the file with the cursor at the start  of
that page and type CONTROL+META<∂D> .

To delete one or more lines from a file, read the file with the cursor  at
the first  line to  be deleted.   Type CONTROL+META<nD>,  where n  is  the
number of lines to  be deleted.  You may  omit n if only  1 line is to  be
deleted.  To delete an entire paragraph, type CONTROL+META<!D>.


SENDING MAIL.

To send a message to another person, create a file page which contains the
message (not forgetting a [RETURN] on the last line), then, while reading that
page, type  CONTROL<X> MAIL xxx  where  xxx  is the programmer initials of the
person to whom you are sending a message.  Use a list of such initials,
separated by commas, for multiple addressees.  See file MAIL.BH[UP.DOC].

To reply to mail from programmer xxx ,add your reply to the page you are
reading, or to a new page, then send the page as above.

To retain copies of all mail you send, create a file called  OUTGO.MSG  and
copies will automatically be put there.  You may edit  OUTGO.MSG , for example
to remove old messages.

To send a one-line message to  xxx , type  
	SEND xxx message [RETURN]
or (while editing) type
	CONTROL<0X> SEND xxx message [RETURN]

To find out John Doe's programmer initials on the SAIL machine type
	FINGER JOHN DOE [RETURN].

For information from the AI phone directory, type  FIND string [RETURN]  to
print all the entries in the directory which contain  string , which might
be a name, phone number, etc. For information from the Computer Science
Department directory, type
	FIND string IN PEOPLE.DAT[PER,CSD] [RETURN].
In fact, FIND can be used to look for  string  in any file.

If programmer  xxx  is at another computer center (say SUMEX), type 
xxx%SUMEX  in mail commands.

PRINTING A FILE.

To make a hard (paper) copy of a file on the XGP printer, type
	XSP filename [RETURN]
A header page will give your name and other identifying information.
For double spacing, type /EXTRA=2 after the file name.
 
To get hard copy from a Diablo terminal, log in at that terminal and type
	TYPE/PAU filename [RETURN]


TO COPY AND JOIN PARTS OF FILES.  (See above, COPYING A FILE, first.)
 
Examples:
COPY f1←f2 [RETURN]
	creates a new file  f1 , which is a copy of file  f2 .
COPY f1←f2(3:5) [RETURN]
	f1  is a copy of pages 3 through 5 of  f2 .
COPY f1←f2(2:4,16,11:14) [RETURN]
	f1  is a copy of pages 2-4, 16, and 11-14 of  f2 .
COPY f1←f2,f3,f4
	f1  is a copy of files  f2 , f3 , and  f4 , joined together.
COPY f1←f2(3:5),f3,f4(6)
	f1  is a copy of pages 3-5 of  f2 , then  f3 , then page 6 of  f4 .


TO PRINT PARTS OF FILES

The file name in a printing command,  (XSP, TYP, etc.)  may be followed by
a parenthesized list of page numbers, and only those pages will be printed.
See the examples of copying parts of files.


TO DELETE A FILE.

(Be careful with this one; be sure you have the right file name, and that 
you no longer need the file.)  Type
	DELETE filename [RETURN]



APPENDIX A.   LIST OF USEFUL EDITING OPERATIONS.

Files are broken into pages by page marks, which appear on the screen as
lines of asterisks.  Pages may be broken into messages, by lines which
begin with a @.  Pages, or messages, may be broken into paragraphs
by blank lines.  In the editing operations below, we use  n  to stand for a
number.  In some commands, the number may be omitted if it is  1 ; if so we
use  n1  to stand for the number.  In some commands, one may use  !  instead
of a number to mean the number of lines to the end (or beginning) of the
current paragraph, or  CONTROL<∂> or CONTROL<-∂> to mean the number of lines to the
end or beginning of the current message; if so, we use  nn  to stand for the number.
If both alternatives to the number are allowed, we use  nn1  to stand for
the number.  Usually,  CONTROL<∞>  can be used as the number to do something
as many times as possible.

The  CET  and  ET  commands may be modified by putting one or more of the
following modifiers, called switches, immediately after the file name to
which they apply.

/E	Open the file with the cursor at the end of the file.
	(Use this to add stuff at the end of the file.)
/nE	Open the file with the cursor at the end of page  n , where  n  is
	any number.  (Use this to add stuff at the end of a page.)
/F	Break the file into pages small enough to be shown on the screen.
/nF	Break the file into pages of at most  n  lines.
/nP	Open the file displaying page  n .  (Use this and  /nL  to get to
	a particular place in the file.)
/nL	Open the file with cursor at line  n .
/R	(Meaning READ ONLY.)  Protect the file from modification.

CURSOR OPERATIONS.

Moving cursor among pages.
CONTROL<P>	cursor to next page.
CONTROL<-P>	cursor to previous page.
CONTROL<+n1 P>	cursor forward  n1  pages.
CONTROL<-n1 P>	cursor back  n1  pages.
CONTROL<nP>	cursor to page  n .

Moving cursor within a page.
[FORM]			cursor forward to next screenful
[VT]			cursor back to previous screenful
CONTROL<nn1> [RETURN]     cursor forward  nn1  lines.
CONTROL<nn1> [BS]	cursor back  nn1  lines.
CONTROL(>) 		cursor forward  4  lines.
CONTROL(<)  		cursor back  4  lines.
CONTROL<≥>		cursor forward half a screenful (16 lines)
CONTROL<≤>		cursor back half a screenful (16 lines)
CONTROL<n1 L>		cursor to line  n1 .
CONTROL<+n1 L>		cursor forward  n1  lines.
CONTROL<∞L>		cursor to last line.
CONTROL<-n1 L>		cursor back  n1  lines.
CONTROL<n1∧>		cursor to  n1 -th line from top of window.
CONTROL<n1∨>		cursor to  n1  line up from bottom of window.
CONTROL<X> LINCNT [RETURN]	terminal tells you how many characters are in
			current line and page.

Moving cursor within a line.
CONTROL<n1 SPACE>  	cursor right  n1  places.
CONTROL<n1 BS>  	cursor left  n1  spaces.
CONTROL<TAB>  		cursor to right end.
CONTROL<RETURN>		cursor to left end.



CHARACTER OPERATIONS.

Changing characters at the cursor:  Type the new characters you want over the
old ones.

Inserting new characters at the cursor:
For a few characters, hold down META while typing the characters.
For a longer insertion,
(1)  Type  CONTROL<I> .
(2)  Type the characters you want to insert between the existing characters
     at the cursor.  No other editing operations will work, until you
(3)  Type  CONTROL<SPACE> or other cursor-moving operation.

Deleting characters at the cursor.
CONTROL<n1 D>	deletes  n1  characters starting at the cursor.
		At end of line, deletes carriage return, joining two lines.
CONTROL<K>c	deletes all characters from the cursor up to the next
		occurrence of character  c .  If  c  is [RETURN], deletes
		the rest of the line.

Cancelling changes in the current line:  <alt> .

LINE OPERATIONS.

Inserting new lines in the file.
(1)  Type  CONTROL+META<RETURN> .
(2)  Use cursor-moving operations to get to the places where you want to
     insert lines.  At each cursor location, you can type new lines which
     will be inserted between the old ones.  No other editing operations
     will work, until you
(3)  Type  CONTROL<RETURN> .

Deleting lines at the cursor.
CONTROL<nn1 META D>  deletes  nn1  lines.  (If an entire page is deleted, pages
		are renumbered.)  At end of page, deletes page mark to
		combine pages.
CONTROL<X> CANCEL [RETURN]   cancels an erroneous deletion.

Looking at different lines of the file without moving the cursor.
CONTROL<J>	look below cursor.
CONTROL<0J>	look around cursor (number zero).
CONTROL<-J>	look above cursor.
CONTROL<T>	see more at top.
CONTROL<B>	see more at bottom.



MATCHING OPERATIONS.

Finding occurrences of string  s  in a page, starting from the current line,
going down, and continuing around from the top after hitting the bottom.
(1)  If you want to find  s  only where it appears surrounded by blanks or
     punctuation (like FIND in this sentence), type  CONTROL<META> ; otherwise
     the editor will find  s  even if it appears as part of a larger word (like
     ROUND in this sentence).
(2)  To search the current page, type  CONTROL<F> ; otherwise, to search the
     whole file, type  CONTROL<X> F  and one blank space.
(3)  Type the string  s  you want to search for.  (Any further spaces you
     type will be taken as part of  s .)
(4)  Type  [RETURN]  to initiate the search.  (To search the directory
     instead of the body of the file, type  CONTROL<P> .)
(5)  To repeat this search as many times as desired, type  CONTROL+META<*> .

To find occurrences of string  s1  and replace each one with  s2 , use the
command for finding string  s1  (see above), but after  s1 , type  CONTROL+META<\>  .
s2.  To repeat such a substitution  n1  times, after having done it once, type
	CONTROL+META<n1\> .
To repeat it as many times as it can be, use
	CONTROL+META<∞\>
To make changes to the string that has been found or substituted by the above
commands, you may want the cursor to be left under the string ready to edit 
the line.  To do this, on a first search, type  CONTROL<RETURN> .  To repeat a
search, type  CONTROL<*> .  To repeat a substitution, type  CONTROL<n1\> .

TEXT-MOVING OPERATIONS.

Moving a part of a file page to a new place.
(1)  (A)  To move the text without leaving a copy behind, type  CONTROL<n1 A>
	  to pick up the next  n1  lines with the cursor.  Otherwise,
     (B)  To move a copy of the text, leaving the original behind, type
	  CONTROL<n1 C>  to pick up a copy of the next  n1  lines with the
	  cursor.
(2)  Use the cursor-moving operations (or matching operations) to take the
     cursor where you want the text to go.
(3)  (A)  To drop the text into the current cursor location in the file,
	  type  CONTROL<E>  (which has this meaning only if there are lines
	  attached to the cursor).  To make more copies, return to step (2).
	  Otherwise:
     (B)  To discard the attached lines, type  CONTROL+META<K> .

Writing a modified page back to disk:  CONTROL< . > .


MARKING OPERATIONS.

Marking ends of pages.
CONTROL<X> MARK [RETURN]	makes a page start at the cursor line.
CONTROL<X> DELETE [RETURN]   removes page mark at end of current page.

To put "bookmarks" on lines for later reference.
CONTROL+META<M>		mark current line.
CONTROL+META<-M>	erase mark from current line.
CONTROL<n M>		move cursor forward to n-th mark.
CONTROL<-M>		move cursor back one mark.

SWITCHING BETWEEN FILES.

CONTROL<ε> filename [RETURN]
	switches to reading and editing  filename .
CONTROL<λ> filename [RETURN]
	switches to (only) reading  filename .
CONTROL<?>
	switches to reading instructions for the editor.
CONTROL<H>
	switches back to previous file.
CONTROL<nε>
	switches to reading and editing the n-th file used since login,
	at line where you left it.
CONTROL<nλ>
	switches to (only) reading the n-th file used since login, at
	line where you left it.
CONTROL<∃>
	lists file names and numbers for use in the above two commands.

TEXT JUSTIFICATION.

	To justify the next  n  lines, with left margin at column  L , right margin at
at column  R , and first lines of paragraphs indented to column  P :
	CONTROL<nX>JUST P, L, R [RETURN] .
If P, L ,R  are omitted, the values 1,1,74 are assumed.  If  n  is omitted, the 
entire current page is justified.  To justify n paragraphs, type
        CONTROL<n!X>JUST P, L, R [RETURN] .
	To center the next  n1 lines:
	CONTROL<n1X>CENTER [RETURN] .
Related operations to left-justify lines or move them left or right, are ALIGN
and INDENT (see the "E" Manual).
APPENDIX B.  WHAT TO DO IN CASE OF TROUBLE.
 
When the terminal is typing things faster than you can read them:  type CONTROL
<BREAK>.  The terminal will stop, displaying the word HOLDING.  Type 
CONTROL<CLEAR> to restart the printing.

When you have made mistakes in controlling the editor, and it doesn't seem to
understand you:  type  CONTROL<RETURN> .  If that doesn't work, use  CONTROL<E> .

When you want to stop whatever the terminal is doing (for example, printing a
long file at you that you don't want to see):  press the [CALL] key.

When you want information about how to use a feature of the system: 
type HELP [RETURN]  for a list of such features.  Type HELP f [RETURN]  for
information about feature  f .  The available HELP features include:
	MAIL (alternate mailing technique)
	LOGIN
	LOGOUT (alias KJOB)
	DIR (directory of files)
	FIND (to find a word in a file)
	FINGER (to identify someone by name or by user ID)
	E (Documentation on the editor)
	ETEACH (Instruction on how to use the editor)
	TALK (with other current terminal users)
	YUMYUM (restaurant guide)
	UNDEL (to rescue a file you deleted)

When you want to clear garbage from the screen:  try <ESCAPE>P .  If you are
in the editor, an additional  CONTROL<V>  may be needed.  If all else fails,
get help or turn terminal off and on.



APPENDIX C.   SOME USEFUL FILES.
 
See page 2 for general information about CS department files.
PEOPLE.DAT[PER,CSD]  CSD personnel directory.
\M	Your mail file.
\B	AI Lab Bulletin Board.
\NE	News Summary.
\C	CSD Bulletin Board.
\DA	Messages of the day.
\DI	News Digest.
\F	Forwarding addresses for computer mail to departed people.
\G	Gripes about computing equipment.
\NO	Current login notices.
E.ALS[UP,DOC]  is a reference manual for the editor.  To read it while
	editing, type  CONTROL<?> .  To return to editing, type  CONTROL<H> .
MONCOM.BH[S,DOC) describes the monitor and its commands.
 
The directories [up,doc] and [S,DOC] contain many files of documentaion
on available programs.